import { reqLogin, reqUserLogout } from "@/api"

export default {
  namespaced: true,
  state: {
    userInfo: {
      // 本地存储密码
      name: localStorage.getItem("name"),
      token: localStorage.getItem("token")
    }
  },
  mutations: {
    SetLogin(state, userInfo) {
      state.userInfo = userInfo
    },
    // 清空信息
    RemoveLogin(state,){
      state.userInfo={name:'',token:''}
    }
  },
  actions: {
    // 登录请求
    async getLogin({ commit }, userInfo) {
      let res = await reqLogin(userInfo)
      console.log(res)
      if (res.code === 200) {
        commit("SetLogin", res.data)
        // 在本地存储中设置
        localStorage.setItem("name", res.data.name)
        localStorage.setItem("token", res.data.token)
      } else {
        // console.log("失败了！", res.message)
        // 返回一个promise的失败实例
        return Promise.reject(res.message)
      }
    },
    // 退出登录请求
    async getLogout({ commit }) {
      let res = await reqUserLogout()
      if(res.code===200){
        // 清空本地存储
        localStorage.removeItem("name")
        localStorage.removeItem("token")
        // 将vuex中的数据清空掉 不需要携带参数
        commit("RemoveLogin")
      }else{
        return Promise.reject(res.message)
      }
    }


  },
  getters: {

  }
}